Skip to content

test(node-core): Fix minute-boundary race in session-aggregate tests#20437

Merged
nicohrubec merged 1 commit intodevelopfrom
nh/fix-session-aggregate-race
Apr 22, 2026
Merged

test(node-core): Fix minute-boundary race in session-aggregate tests#20437
nicohrubec merged 1 commit intodevelopfrom
nh/fix-session-aggregate-race

Conversation

@nicohrubec
Copy link
Copy Markdown
Member

@nicohrubec nicohrubec commented Apr 22, 2026

The SDK buckets sessions by minute-rounded timestamp. When a test's sequential requests run across a minute boundary, the payload splits across two aggregates buckets and the existing single-bucket assertion fails. To resolve this, this PR replaces the single bucket check with a sum across all returned buckets to ensure the total count is correct even if events are split across buckets.

The same pattern exists in our node-core and node integration tests.

Closes #20283
Closes #20436

The SDK buckets session counts by minute-rounded timestamp (see
`packages/node-core/src/integrations/http/httpServerIntegration.ts`
lines 290-292). When the test's sequential requests straddle a minute
boundary, the emitted payload splits across two aggregate buckets and
the existing `aggregates: [{...}]` assertion fails — a pure timing
race, not a code bug.

Replace the hard-coded single-bucket assertion with an inline reduce
that sums `exited`/`errored`/`crashed` across all returned buckets
and asserts on the totals, matching the SDK's real behaviour.

Applies to all 5 session-aggregate integration tests (2 in node-core,
3 in node). Two of them already flake (#20283, #20436); the other
three share the same pattern and are preventively fixed.

Closes #20283
Closes #20436

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 25.88 kB - -
@sentry/browser - with treeshaking flags 24.35 kB - -
@sentry/browser (incl. Tracing) 43.81 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 45.5 kB - -
@sentry/browser (incl. Tracing, Profiling) 48.73 kB - -
@sentry/browser (incl. Tracing, Replay) 82.98 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 72.5 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 87.67 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 99.93 kB - -
@sentry/browser (incl. Feedback) 42.7 kB - -
@sentry/browser (incl. sendFeedback) 30.55 kB - -
@sentry/browser (incl. FeedbackAsync) 35.55 kB - -
@sentry/browser (incl. Metrics) 27.16 kB - -
@sentry/browser (incl. Logs) 27.29 kB - -
@sentry/browser (incl. Metrics & Logs) 27.98 kB - -
@sentry/react 27.62 kB - -
@sentry/react (incl. Tracing) 46.05 kB - -
@sentry/vue 30.71 kB - -
@sentry/vue (incl. Tracing) 45.62 kB - -
@sentry/svelte 25.89 kB - -
CDN Bundle 28.57 kB - -
CDN Bundle (incl. Tracing) 46.08 kB - -
CDN Bundle (incl. Logs, Metrics) 29.95 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 47.12 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 68.92 kB - -
CDN Bundle (incl. Tracing, Replay) 83.14 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 84.17 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 88.61 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 89.69 kB - -
CDN Bundle - uncompressed 83.59 kB - -
CDN Bundle (incl. Tracing) - uncompressed 137.62 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 87.73 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 141.03 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 211.31 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 255.06 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 258.46 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 267.97 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 271.36 kB - -
@sentry/nextjs (client) 48.58 kB - -
@sentry/sveltekit (client) 44.22 kB - -
@sentry/node-core 58.02 kB +0.02% +6 B 🔺
@sentry/node 174.89 kB +0.01% +6 B 🔺
@sentry/node - without tracing 97.98 kB +0.02% +13 B 🔺
@sentry/aws-serverless 115.21 kB +0.02% +19 B 🔺

View base workflow run

@nicohrubec nicohrubec marked this pull request as ready for review April 22, 2026 07:26
@nicohrubec nicohrubec requested review from a team, logaretm and s1gr1d and removed request for a team April 22, 2026 07:26
@nicohrubec nicohrubec merged commit a01d6a8 into develop Apr 22, 2026
47 checks passed
@nicohrubec nicohrubec deleted the nh/fix-session-aggregate-race branch April 22, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants